/*
 * SoftwareSAR - 1.0
 */
package br.com.cpqd.ssar.utilitarias;

import java.util.Vector;

/**
 * Classe que armazena os tipos de fontes eletromagneticas disponíveis
 * @author Carlos H. S. Santos
 * @version 1.0
 */
public class TiposdeFonteEletromagnetica {

    /**
     * ID da Fonte
     */
    private int id;
    /**
     * Tipo de fonte Eletromagnética
     */
    private String type;
    /**
     * Quantidade de parametros requeridos pela fonte
     */
    private int nparameters;
    /**
     * Nome de identificação dos parâmetros, sendo que todo serão double
     */
    private Vector parametersname;

    /**
     * Construtor
     */
    public TiposdeFonteEletromagnetica() {
        type = new String();
        parametersname = new Vector();
    }

    /**
     * Atribuir o valor do ID
     * @param id Int
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * Atribuir o valor tipo/nome da fonte
     * @param type String
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * Retornar o tipo/nome da fonte
     * @return String
     */
    public String getType() {
        return this.type;
    }

    /**
     * Atribuir a quantidade de parametros requeridos pela fonte
     * @param n int
     */
    public void setNParameters(int n) {
        this.nparameters = n;
    }

    /**
     * Retorna o ID do Tipo de Fonte
     * @return int
     */
    public int getId() {
        return this.id;
    }

    /**
     * Retorna a quantidade de parametros requeridos pela fonte
     * @return int
     */
    public int getNParameters() {
        return this.nparameters;
    }

    /**
     * Atribuir os nomes dos parametros 
     * @param name Vector
     */
    public void setAllParametersName(Vector name) {
        this.parametersname = name;
    }

    /**
     * Atribuir o nome da propriedade
     * @param id int
     * @param name String
     */
    public void setParameterName(int id, String name) {
        if ((id < this.nparameters) && (id >= 0)) {
            parametersname.add((String) name);
        } else {
            System.out.println("(setParameterName): Index out of bounds.");
            System.exit(0);
        }
    }

    /**
     * Retorna todos os nomes dos parametros
     * @return Vector String
     */
    public Vector getAllParametersName() {
        return this.parametersname;
    }

    /**
     * Retorna um único nome de parametro
     * @param id int
     * @return String
     */
    public String getParameterName(int id) {
        if ((id < this.nparameters) && (id >= 0)) {
            return (String) parametersname.get(id);
        } else {
            System.out.println("Index out of bounds.");
            System.exit(0);
            return "Error";
        }
    }

    /**
     * Nome do objeto para aparecer na lista
     * @return String
     */
    @Override
    public String toString() {
        //return Integer.toString(this.id)+" :   "+this.type;
        return this.type;
    }
}
